<?php
/*
 * Formatowanie daty wg poprawności języka polskiego
 */
function pol_data($format,$timestamp = null)
{
    $to_convert = array(
        'l' => array('dat' => 'N','str' => array('Poniedziałek','Wtorek','Środa','Czwartek','Piątek','Sobota','Niedziela')),
        'F' => array('dat' => 'n','str' => array('styczeń','luty','marzec','kwiecień','maj','czerwiec','lipiec','sierpień','wrzesień','październik','listopad','grudzień')),
        'f' => array('dat' => 'n','str' => array('stycznia','lutego','marca','kwietnia','maja','czerwca','lipca','sierpnia','września','października','listopada','grudnia'))
    );
    if($pieces = preg_split('#[:/.\-, ]#',$format))
    {
        if($timestamp===null)
            $timestamp = time();
        foreach($pieces as $datepart)
        {
            if(array_key_exists($datepart,$to_convert))
                $replace[] = $to_convert[$datepart]['str'][(date($to_convert[$datepart]['dat'],$timestamp)-1)];
            else
                $replace[] = date($datepart,$timestamp);
        }
        $result = strtr($format,array_combine($pieces,$replace));
        return $result;
    }
}

/*
 * Ładny wydruk danych
 */
function pretty_print($var)
{
    echo '<pre style="text-align:left;clear:both;">'.print_r($var,1).'</pre>';
}

function mpr($val, $die=false, $traceIndex = 0) 
{
    if(!headers_sent()) 
        header("content-type: text/plain");

    if (is_array($val) || is_object($val))
    {
        print_r($val);
        if(is_array($val))
            reset($val);
    }   
    else
        var_dump($val);

    if($die)
    {   
        $trace = debug_backtrace();
        echo "--\n";
        echo sprintf('Who called me: %s line %s', $trace[0]['file'], $trace[0]['line']);
        if($traceIndex) 
        {
            echo "\nTrace:";
            for($i = 1; $i <= $traceIndex; $i++)
                echo sprintf("\n%s line %s", $trace[$i]['file'], $trace[$i]['line']);
        }
        die();
    }   
}

/*
 * Usuwanie polskich znaków
 */
function remove_pl($t,$replace=null) 
{
    $rf     = array("\r","\n","\r\n","\n\r",'а','б','в','г','д','е','ё','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','ш','щ','ъ','ы','ь','э','ю','я','ż','ź','ń','ą','ś','ł','ę','ó');
    $rt     = array('','','','','a','b','v','g','d','e','jo','zh','z','i','j','k','l','m','n','o','p','r','s','t','u','f','h','c','ch','sh','w','','y','','je','ju','ja','z','z','n','a','s','l','e','o');
    $txt    = str_replace(array('^',"'",'"','`','~'),'',iconv('UTF-8','ASCII//TRANSLIT',str_replace($rf,$rt,mb_strtolower($t,'UTF-8'))));
    $txt    = str_replace(array(' ','  ',':',',','.',';','=','+','%','!','@','#','$','*'),'_',$txt);
    if(empty($replace)) 
        return $txt;
    else 
        return str_replace(' ',$replace, ereg_replace(' +',' ',preg_replace('/[^a-zA-Z0-9\s]/','',trim(str_replace(array('_','.',',','(',')','{','}','[',']','/',':',';','"','\'','-','+','=','!','@','#','$','%','^','&','?','*'),' ', $txt )))));
}

function get_image_from_txt($text)
{
    $regex  = '~src="[^"]*"~';
    preg_match_all($regex,$text,$obrazki);
    $liczba = count($obrazki[0]);
    if($liczba>0)
    {        
        $str1   = $obrazki[0][0];
        $str1   = trim($str1);
        $len    = strlen($str1);
        $imgpath= substr_replace(substr($str1,5,$len),'',-1);
        return substr($imgpath,1);
    }
    else
        return null;
}

/*
 * wstawia linki do obrazków
 * wygenerowanych w serwisie http://www.placehold.it
 * @link http://placehold.it/150/4D99E0/ffffff.png&text=Foto
 * 
 * @param   int     $width - szerokość obrazka
 * @param   int     $height - wysokość obrazka
 * @param   string  $background - kolor tła obrazka
 * @param   string  $color - zapis w formacie 16-stkowym, np. ffffff
 * @param   string  $format - rozszerzenie obrazka (gif, png, jpg)
 * @param   string  $text - tekst na obrazku 
 * 
 * @return  string $link - link do obrazka
 */
function place_img($width,$height='',$background='',$color='',$format='',$text='')
{
    $link    = 'http://placehold.it/';
    $link   .= $width;
    if(!empty($height))
        $link .= 'x'.$height;
    if(!empty($background))
        $link .= '/'.$background;
    if(!empty($color))
        $link .= '/'.$color;
    if(!empty($color) && !empty($format))
        $link .= '/'.$color.'.'.$format;
    elseif(empty($color) && !empty($format))
        $link .= '/.'.$format;
    if(!empty($text))
        $link .= '&text='.$text;
    
    return $link;
}

/*
 * funkcja sprawdzająca czy data ma format (YYYY-MM-DD)
 * @param string $date
 * @return bool
 */
function match_date_format($date)
{
    if(preg_match('?^(19|20)\d\d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])$?',$date))
        return TRUE;
    else
        return FALSE;
}

/*
 * funkcja zwraca link powrotny
 */
function get_back_link()
{
    return anchor('#','<i class="icon-repeat icon-white"></i> Powrót do poprzedniej strony', array('onClick' => 'history.back()','class'=>'btn btn-inverse'));
}

/*
 * funkcja zwraca link powrotny
 */
function get_back2_link()
{
    return anchor('#','<i class="icon-repeat icon-white"></i> Powrót do poprzedniej strony', array('onClick' => 'history.go(-2)','class'=>'btn btn-inverse'));
}

?>
